#  判断 前面对象有后面的属性
#  hasattr(对象,'对象的属性名')
class Player():


    def __new__(cls, *args, **kwargs):# 创建对象
        print('__new__......')
        # if 没有这个类属性  :  创建对象 并且赋值
        # if 这个类属性不为空 --> 说明创建过对象并返回
        if not hasattr(cls,'instance'):
            cls.instance = object.__new__(cls)
        return cls.instance


    def __init__(self,name):      # 赋值,初识性参数
        print('__init__.....')
        self.name = name

p1 = Player('QQ')  #  实例化过程
p2 = Player('网易云')

print(p1.name)
print(p2.name)
# # 判断 前面对象有后面的属性
# # hasattr(对象,'对象的属性名')
# print(hasattr(p1,'name'))
print(hasattr(p1,'age'))
print(p1 is p2)














